﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AccesoData;
using Entidades;
using Logica.Comandos.Sucursal;
using Logica.Interfaces;

namespace Logica.Comandos.AseguradoraCommand
{
    public class ComandoEditarAseguradora: Comando, IEditable
    {
        private List<Comando> _comandos;

        public ComandoEditarAseguradora()
        {
            _comandos = new List<Comando>();

            _comandos.Add(FComandos.ComandoSucursal().Agregar());
        }
        #region Overrides of Comando

        public override void Ejecutar()
        {
            throw new NotImplementedException();
        }

        #endregion

        #region Implementation of IEditable


        public bool Ejecutar(Entidades.Cliente cliente)
        {
            throw new NotImplementedException();
        }

        public bool Ejecutar(Inspeccion inspeccion, Aseguradora aseguradora)
        {
            throw new NotImplementedException();
        }

        public bool Ejecutar(Entidades.Lugar lugar)
        {
            throw new NotImplementedException();
        }

        public bool Ejecutar(Personal personal)
        {
            throw new NotImplementedException();
        }

        public bool Ejecutar(Entidades.Poliza poliza)
        {
            throw new NotImplementedException();
        }

        public bool Ejecutar(Recaudo recaudo)
        {
            throw new NotImplementedException();
        }

        public bool Ejecutar(RecaudoInspeccion recaudoInspeccion)
        {
            throw new NotImplementedException();
        }

        public bool Ejecutar(Entidad recaudo, Entidad ramo)
        {
            throw new NotImplementedException();
        }

        public bool Ejecutar(DetalleEstimado detalle)
        {
            throw new NotImplementedException();
        }

        public bool Ejecutar(Entidades.Siniestro siniestro)
        {
            throw new NotImplementedException();
        }

        public bool Ejecutar(Entidades.Sucursal sucursal)
        {
            throw new NotImplementedException();
        }

        #endregion

        /// <summary>
        /// edita los datos de una aseguradora en la base de datos
        /// </summary>
        /// <param name="aseguradora"></param>
        /// <returns></returns>
        public bool Ejecutar(Aseguradora aseguradora)
        {
            foreach (var sucursal in aseguradora.Sucursales)
            {
                sucursal.IdAseguradora = aseguradora.Id;
                if (sucursal.Id == -1)
                {
                    ((ComandoCrearSucursal) _comandos[0]).Ejecutar(sucursal);
                }
            }
            return DAO.ObtenerFabrica(1).ObtenerDaoAseguradora().EditarAseguradora(aseguradora);
        }
    }
}
